const { app, pool } =require('./connect')
const session = require("express-session");

const user = require('./router/user')
const usermanage = require('./router/usermanage')
const file = require('./router/file')
const apiurl = '/indiviual'

app.use(
  session({
    secret:'keyboard cat',  // 服务端生成申明可随意写
    resave:true,      // 强制保存session即使他没有什么变化
    saveUninitialized:true,   // 强制将来初始化的session存储
    cookie:{  // session是基于cookie的，所以可以在配置session的时候配置cookie
      maxAge:1000*60*30,  // 设置过期时间
      secure:false      // true的话表示只有https协议才能访问cookie
     }
}))

//这里处理全局拦截，一定要写在最上面
app.all('*', (req, res, next) => {
  next()
})

//首页路由
app.get('/', (req,res) => {
  res.sendFile(__dirname+'/'+'index.html')
})
app.all('/', (req, res) => {
  pool.getConnection((err, conn) => {
    res.json({ type: 'test'})
    pool.releaseConnection(conn) // 释放连接池，等待别的连接使用
  })
})


app.use(function(req,res,next){
  // next()
  if (!req.session.islogin) {
    console.log(req.url)
    if (req.url === apiurl+'/user/login' || req.url ===  apiurl+'/user/registry') {
      next();/*请求为登陆或者注册则不需要校验session*/
    }
    else{
      res.json({result: false, content: '登录失效，请重新登录'});
    }
  }else if (req.session.userinfo) {
    next();
  };
})

app.use(apiurl + '/user', user)
app.use(apiurl + '/usermanage', usermanage)
app.use(apiurl + '/file', file)

// 运行端口
app.listen(8088, () => {
  console.log('服务启动','localhost:8088')
})
var debug = require('debug')('my-application'); // debug模块
app.set('port', process.env.PORT || 3000); // 设定监听端口

//启动监听
var server = app.listen(app.get('port'), function() {
    debug('Express server listening on port ' + server.address().port);
});



